0. Blueprint

모든 블루프린트 XML 파일은 아래의 공통 규칙을 따릅니다.

<부모클래스이름>
    <Configs>
        <그룹이름 속성="값" 속성2="값" ... />
    </Configs>
    
    <Components>
        <타입 Name="루트" Loc="float3" Rot="float3" Scale="float3" ...>
            <타입 Name="자식" ... />
        </타입> 
    </Components>

    <Events>
        <시스템이벤트> 
            <액션타입 속성="값" ... /> 
        </시스템이벤트>

        <커스텀이벤트> 
            <액션타입 속성="값" ... />
        </커스텀이벤트>
    </Events>
</부모클래스이름>

1. Configs


Configs는 액터의 특징을 정의하는 블록입니다.

<Configs>
    <Movement InitSpeed="(0, 0, 500)" MaxSpeed="1000" GravityScale="0" />
    
    <LifeCycle Life="3" />
    
    <Homing Homing="5.0" HomingTurnLimit="90" />
</Configs>

2. 컴포넌트


컴포넌트는 안쪽으로 중첩될수록 부모의 위치(Loc), 회전(Rot), 크기(Scale) 를 기준으로 배치됩니다.

<Components>
    <Mesh Name="동체" Asset="SM_Plane_Body">
        <Mesh Name="왼쪽날개" Asset="SM_Wing" Loc="(-5, 0, 0)" />
        <Mesh Name="오른쪽날개" Asset="SM_Wing" Loc="(5, 0, 0)" />
        
        <Mesh Name="엔진" Asset="SM_Engine" Loc="(0, -3, 0)">
            <Particle Name="추진불꽃" Asset="P_JetFire" /> 
        </Mesh>
    </Mesh>
</Components>

2.1. 기본 속성


속성 키 (Key) 타입 기본값 설명
Name string 컴포넌트의 고유 이름입니다. 에셋 내에서 중복될 수 없습니다.
Loc float3 (0 0 0) 부모로부터의 상대적인 위치입니다.
Rot float3 (0 0 0) 부모로부터의 상대적인 회전값(Degree)입니다.
Scale float3 (1 1 1) 컴포넌트의 크기 배율입니다.
Anim bool false 컴포넌트에 애니메이션을 적용할 수 있게 됩니다.
Activate bool true 컴포넌트를 활성화 한 상태로 생성합니다.

3. 이벤트 및 액션 설정 (Events)


이벤트는 특정 상황에서 실행되는 액션들의 리스트입니다.

3.1. 시스템 예약 이벤트


엔진에서 사전에 정의된 타이밍에 자동으로 실행됩니다.
이 이벤트는 On 접두사로 시작합니다.

정의하지 않은 시스템 예약 이벤트를 호출할 경우, 예외가 발생하게 됩니다.

3.2. 커스텀 이벤트


스크립트에서 정의하는 이벤트입니다. On접두사가 없는 경우 커스텀 이벤트로 간주됩니다.

다른 이벤트에서 <Event Name = "이름"> 으로 호출 할 수 있습니다.

3.3. 액션


이벤트 블록 내부에 적힌 액션들은 위에서 아래 방향으로 순차적으로 실행됩니다.

<Events>
    <OnSpawn>
        <Particle Asset="P_Explosion" /> 
        <Event Name="CustomEvent" /> 
	</OnSpawn>

    <CustomEvent>
        ...
    </CustomEvent>
</Events>

4. 데이터 타입 작성 규칙


XML 작성 시 아래 형식을 반드시 지켜야 오류가 발생하지 않습니다.

5. 클래스별 명세서